package com.yaorange.nongjt.service.impl;

import com.yaorange.nongjt.service.INjtCommoneServie;
import com.yaorange.common.exception.ServiceException;
import com.yaorange.common.utils.uuid.UUID;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;


@Service
@Slf4j
public class NjtCommoneServiceImpl implements INjtCommoneServie {


    /**
     * @param multipartFile Multipart 文件
     * @return {@link String }
     * @descripiton 文件上传
     *
     *
     */
    @Override
    public String uploadFile(MultipartFile multipartFile) {

        /*               基于本地存储的文件上传                     */

        // 将上传文件保存到本地磁盘，保存到 D://JavaQZGCS/upload/static/images 目录下
        String originalFilename = multipartFile.getOriginalFilename(); // 获取上传文件的原始文件名
        String uuidName = UUID.fastUUID().toString() +"--"+ originalFilename; // 生成一个随机的文件名，避免相同文件名的文件发生覆盖问题
        File targetFile = new File("E:\\nongjt\\images"+uuidName);
        if (!targetFile.getParentFile().exists()) { // 判断保存的目标文件的父级目录是否存在，如果不存在就创建
            targetFile.getParentFile().mkdirs();
        }
        try {
            multipartFile.transferTo(targetFile); // 将上传的文件保存到目标文件
        } catch (IOException e) {
            log.error("文件保存到磁盘失败-{}",e.getMessage());
            throw new ServiceException("文件上传失败");
        }
        // 响应一个可访问的地址给前端，如：http://localhost:8080/images/文件名
        return "http://localhost:8080/images/"+uuidName;


    }


}
